package com.cmsz.xpay.common.unionpay.sign;

import java.util.Map;
/**
 * 银联签名验签接口
 * @author Eshin
 * 
 */
public interface ISignService {
	/**
	 * 单证书签名
	 * @param reqData 请求签名数据
	 * @param encoding
	 * @return 含签名字段的map
	 */
	public Map<String, String> sign(Map<String, String> reqData,String encoding);
	/**
	 * 单证书将签名后的map组装成key=value&key=value...
	 * @param reqData
	 * @param encoding
	 * @return
	 */
	public String  signStr(Map<String, String> reqData,String encoding);
    /**
     * 多证书签名
     * @param reqData
     * @param certPath
     * @param certPwd
     * @param encoding
     * @return
     */
	public Map<String, String> sign(Map<String, String> reqData,String certPath, 
			String certPwd,String encoding,String certType);
	/**
	 * 多证书签名组装成key=value&key=value...
	 * @param reqData
	 * @param certPath
	 * @param certPwd
	 * @param encoding
	 * @return
	 */
	public String signStr(Map<String, String> reqData,String certPath, 
			String certPwd,String encoding,String certType);
	/**
	 * 验证签名(SHA-1摘要算法)<br>
	 * @param resData 返回报文数据<br>
	 * @param encoding 上送请求报文域encoding字段的值<br>
	 * @return true 通过 false 未通过<br>
	 */
	public boolean validateSign(Map<String, String> rspData, String encoding);
	/**
	 * 对控件支付成功返回的结果信息中data域进行验签（控件端获取的应答信息）
	 * @param jsonData json格式数据，例如：{"sign" : "J6rPLClQ64szrdXCOtV1ccOMzUmpiOKllp9cseBuRqJ71pBKPPkZ1FallzW18gyP7CvKh1RxfNNJ66AyXNMFJi1OSOsteAAFjF5GZp0Xsfm3LeHaN3j/N7p86k3B1GrSPvSnSw1LqnYuIBmebBkC1OD0Qi7qaYUJosyA1E8Ld8oGRZT5RR2gLGBoiAVraDiz9sci5zwQcLtmfpT5KFk/eTy4+W9SsC0M/2sVj43R9ePENlEvF8UpmZBqakyg5FO8+JMBz3kZ4fwnutI5pWPdYIWdVrloBpOa+N4pzhVRKD4eWJ0CoiD+joMS7+C0aPIEymYFLBNYQCjM0KV7N726LA==",  "data" : "pay_result=success&tn=201602141008032671528&cert_id=68759585097"}
	 * @return 是否成功
	 */
	public boolean validateAppRspSign(String jsonData, String encoding);
	
}
